/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladores;

import csp.*;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.xml.bind.annotation.XmlElement.DEFAULT;

/**
 *
 * @author Pablo
 */
public class controladorIUResultado {
    private double[] resultados;
    private int cantidadVariables;
    private final ProblemaAntenas problemaActual;
    private final AlgortimoCSP algoritmoActual;
    
    public controladorIUResultado(ProblemaAntenas problema, AlgortimoCSP algoritmo) {
        problemaActual = problema;
        cantidadVariables=problema.getVariables().size();
        algoritmoActual = algoritmo;
    }
    
    public int getcantidadVariables(){
    return this.cantidadVariables;
    }

    public String getImagen() {
        switch (cantidadVariables){
            case 4: return "4fig.png";
            case 6: return "6fig.png";
            case 8: return "8fig.png";
            default: return "ALGO MALO PASO";
        }
    }

    public DefaultTableModel getDatos() {
        Object[][] resultados = new Object[cantidadVariables][2];
        
        int i = 0;
        for(int j=0; j<cantidadVariables; j++){
            resultados[j][0] = "X"+(String.valueOf(j+1));
            }
        for(Variable variable: problemaActual.getVariables()){
            Antena antena = (Antena) variable.getAsignado();
           resultados[i][1] = "Antena " + (String.valueOf(antena.getNro()+1)) +
                   ": f = "+ antena.getFrecuencia() +" GHz , P = "+antena.getPotencia()+" MW";
           i++;
        }
         String[] columnNames ={ "Variable",
                                "Antena Asignada"};
         
        DefaultTableModel modelo= new DefaultTableModel(resultados, columnNames);
        
        return modelo;
        
    }
    
    public DefaultTableModel getRendimiento(){
        Object[][] rendimiento = new Object[4][2];
        int i = 0;
        rendimiento[0][0] = "Runtime (ms)";
        rendimiento[1][0] = "Runtime (ns)";
        rendimiento[2][0] = "Recursiones";
        rendimiento[3][0] = "Backtrackings";
        
        rendimiento[0][1] = algoritmoActual.getMedidasRendimiento().getRuntime();
        rendimiento[1][1] = algoritmoActual.getMedidasRendimiento().getRuntimeNS();
        rendimiento[2][1] = algoritmoActual.getMedidasRendimiento().getRecursiones();
        rendimiento[3][1] = algoritmoActual.getMedidasRendimiento().getBackTracks();

        String[]columnNames = {"Medida", "Valor"};
        
        DefaultTableModel modelo1 = new DefaultTableModel(rendimiento, columnNames);
        
        return modelo1;
    }
    
}
